﻿<?php
/**
* @package   auto_occasion
* @subpackage essais
* @author    your name
* @copyright 2011 your name
* @link      http://www.yourwebsite.undefined
* @license    All rights reserved
*/

class FoEssaiCtrl extends jController {
    /**
    * Page essai - front
    */
    function index() {

        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_ESSAI;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ESSAI) ;
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');
        
        jClasses::inc("essais~essaisSrv");
        jClasses::inc('commun~common');
        jClasses::inc('essais~chapitreSrv') ;
        jClasses::inc('essais~rappelSrv') ;
        jClasses::inc('essais~concurrenceSrv') ;
        jClasses::inc('essais~techniqueSrv') ;
        
        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ESSAIS);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

        $idEssai            = $this->intParam('id', 0);
        $chapitre           = chapitreSrv::loadChapter_($idEssai, 0, 1);
        $essai              = common::chargeParId($idEssai, 'ao_essais');
        $marque             = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
        $modele             = common::chargeParId($essai->ess_iModelId, 'ao_modele');
        $fiabilite          = ($idEssai) ? rappelSrv::chargeParEssaiId($idEssai, ESSAI_FIABILITE) : array(common::init('ao_essais_rappel')); 
        $caracteristique    = techniqueSrv::getAllByEssaiId($idEssai);
        $version            = chapitreSrv::loadChapter($idEssai, 0, 2);

        // checker si la cractéristique existe pour l'essais en question 
        $caracteristiqueExiste = techniqueSrv::exists($idEssai);


        $rep->bodyTpl       = 'essais~FoEssai';
         // Récupération du chapeau si c'est stocké dans un fichier texte
        if ($idEssai) {
             if((isset($modele->modele_libelle)) && ($modele->modele_libelle != null)){
                // Fiabilite
                if (is_array($fiabilite) && isset($fiabilite[0]->rappel_texte)) {
                    $filenameFiabilite = JELIX_APP_WWW_PATH . PATH_ESSAI_FIABILITE . 'guide'. $idEssai . '/'. $fiabilite[0]->rappel_texte;
                    if (file_exists($filenameFiabilite) && strpos($fiabilite[0]->rappel_texte, ".txt") !== false) {
                        jClasses::inc('commun~toolsFile');
                        $fiabilite[0]->rappel_texte =toolsFile::get($filenameFiabilite);
                    }
                }

                $rep->body->assignZone('oZoneEssaiAnnonce', 'essais~FoEssaiAnnonce');
            }

            $filenameImg  = JELIX_APP_WWW_PATH . PATH_ESSAI_IMG . $essai->ess_zImage;

            $filenameImg2 = JELIX_APP_WWW_PATH . $essai->ess_zImage;

            $directPath =  realpath(JELIX_APP_WWW_PATH . '../../'); // utile sur le serveur de test
            // récupération de l'image
            if (file_exists($filenameImg)) {
                $essai->ess_zImage = PATH_ESSAI_IMG . $essai->ess_zImage;
            } else if (file_exists($filenameImg2)) {
                $essai->ess_zImage = $essai->ess_zImage;
            } else if (file_exists($directPath . PATH_ESSAI_IMG . $essai->ess_zImage)) {
                $essai->ess_zImage = PATH_ESSAI_IMG . $essai->ess_zImage;
            } else if (file_exists($directPath . $essai->ess_zImage)) {
                $essai->ess_zImage = $essai->ess_zImage;
            } else {
                $essai->ess_zImage = '';
            }
                
            $filename = JELIX_APP_WWW_PATH . PATH_ESSAI_CHAPEAU . $essai->ess_zChapeau;
			//print_r($filename) ;
            if (file_exists($filename) && strpos($essai->ess_zChapeau, ".txt") !== false ) {
                //récupération du contenu du fichier et le mettre dans la variable ess_zChapeau x :gamme-porsche-1019663438.txt
                jClasses::inc('commun~toolsFile');
                $essai->ess_zChapeau = toolsFile::get($filename);
            }

           //Affichage de la concurrence
           $concurrence  = concurrenceSrv::loadConcurrence($idEssai ,true);
        }

        $chapB = array();
        if (sizeof($chapitre)) {
            foreach ($chapitre as $k=>$item) {
                $item->chap_content = trim($item->chap_content);

                $chapB[] = $item;
            }
            $chapitre = $chapB;
        }
        // print_r($chapitre);die();
		//On teste si l'essai existe :oui =>on affiche ses caractéristiques ;non : on redirige vers la page de recherche d'un essai
		if( is_object($essai) ){

			$rep->body->assign('chapitre'       , $chapitre);
			$rep->body->assign('concurrence'    , $concurrence);
			$rep->body->assign('essai'          , $essai);
			$rep->body->assign('fiabilite'      , $fiabilite);
			$rep->body->assign('marque'         , $marque);
			$rep->body->assign('modele'         , $modele);
			$rep->body->assign('caracteristique',$caracteristique);
			$rep->body->assign('version'        ,$version);
			$rep->body->assign('caracteristiqueExiste',$caracteristiqueExiste);
			//pubHidden et rightContent
			$paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
			$rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
			
			$paramRight = array('ad'=>1,'no_need_cc2'=>1);
			$rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight);

			return $rep;
		
		}else{
		
			$rep			= $this->getResponse('redirect');
			$rep->action	= 'essais~FoEssaiRecherche:index';
			$rep->params	= array('erreur'=>2) ;
			return $rep;
		}
        
    }
        /**
    * Page essai  concurrence- front
    */
    function concurrence() {

        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_ESSAI;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_CONCURRENCE) ;

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');
        
        jClasses::inc("essais~essaisSrv");
        jClasses::inc('commun~common');
        jClasses::inc('essais~chapitreSrv') ;
        jClasses::inc('essais~rappelSrv') ;
        jClasses::inc('essais~concurrenceSrv') ;


        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ESSAIS_CONCURRENCE);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

         $idConcur    = $this->intParam('concurId', 0);
         $id          = $this->intParam('id', 0);

         $concur            = common::chargeParId($idConcur, 'ao_essais_concurrence');
         $critere           = new stdClass();
         $critere->marqueId = $concur->concur_marque_id;
         $critere->modeleId = $concur->concur_modele_id;
         $critere->essId    = $id;

         $essais              = essaisSrv::getEssaiByCritere($critere);


         if(sizeof($essais)>1){
             $marque       = common::chargeParId($concur->concur_marque_id, 'ao_marque');
             $modele       = common::chargeParId($concur->concur_modele_id, 'ao_modele');
             $rep->body->assign('marque', $marque);
             $rep->body->assign('modele', $modele);
             $rep->bodyTpl = 'essais~FoListeEssai';
             $rep->body->assign('essais', $essais);

        } else {
            $essais[0]->ess_id = ($id) ? $id : $essais[0]->ess_id;
            $chapitre     = chapitreSrv::loadChapter($essais[0]->ess_id,0,1);
            if ($essais[0]->ess_id) 
                $concurrence  = concurrenceSrv::loadConcurrence($essais[0]->ess_id);
            else
                $concurrence  = common::init('ao_essais_concurrence');

            $essai        = common::chargeParId($essais[0]->ess_id, 'ao_essais');
            $marque       = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
            $modele       = common::chargeParId($essai->ess_iModelId, 'ao_modele');
            $fiabilite = ($essais[0]->ess_id) ? rappelSrv::chargeParEssaiId($essais[0]->ess_id, ESSAI_FIABILITE) : array(common::init('ao_essais_rappel')); // --- 1 pr fiabilite
             
            $filenameFiabilite = JELIX_APP_WWW_PATH . PATH_ESSAI_FIABILITE . 'guide'. $essais[0]->ess_id . '/'. $fiabilite[0]->rappel_texte;
            if (file_exists($filenameFiabilite) && strpos($fiabilite[0]->rappel_texte, ".txt") !== false) {
                jClasses::inc('commun~toolsFile');
                $fiabilite[0]->rappel_texte =toolsFile::get($filenameFiabilite);
            }

            $filenameImg = JELIX_APP_WWW_PATH . PATH_ESSAI_IMG . $essai->ess_zImage;
            // récupération de l'image
            if (file_exists($filenameImg)) {
                $essai->ess_zImage = PATH_ESSAI_IMG . $essai->ess_zImage;
            }
                
            $filename = JELIX_APP_WWW_PATH .PATH_ESSAI_CHAPEAU . $essai->ess_zChapeau;
            if (file_exists($filename) && strpos($essai->ess_zChapeau, ".txt") !== false) {
                //récupération du contenu du fichier et le mettre dans la variable ess_zChapeau x :gamme-porsche-1019663438.txt
                jClasses::inc('commun~toolsFile');
                $essai->ess_zChapeau = toolsFile::get($filename);
            }

            $rep->bodyTpl    = 'essais~FoEssai';

            $rep->body->assign('titre', $titre);
            $rep->body->assign('fiabilite', $fiabilite);
            $rep->body->assign("chapitre", $chapitre);
            $rep->body->assign("concurrence", $concurrence);
            $rep->body->assign('essai', $essai);
            $rep->body->assign('marque', $marque);
            $rep->body->assign('modele', $modele);
        }
         //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
        
        $paramRight = array('ad'=>1,'no_need_cc2'=>1);
        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight);
        //---
        $rep->body->assignZone('oZoneEssaiAnnonce', 'essais~FoEssaiAnnonce');
   
        return $rep;
    }

     /**
    * Page essai - front
    */
    function chapitre() {
        jClasses::inc('commun~common');
        jClasses::inc('essais~chapitreSrv');
		jClasses::inc('publicite~pubSrv');
		jClasses::inc('commun~parametre');
        jClasses::inc('essais~rappelSrv');
        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_ESSAI;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ESSAI) ;
        

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');


        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ESSAIS_CHAPITRES);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---
		
        $idEssai         = $this->intParam('id', 0);
        $idChapname      = $this->intParam('chap', 0);

        $chapitre        = ($idChapname) ? common::chargeParId($idChapname, 'ao_essais_chapitre') : common::init('ao_essais_chapitre');
        $chapitre->chap_name = (isset($chapitre->chap_name_id) && $chapitre->chap_name_id) ? common::chargeParId($chapitre->chap_name_id, 'ao_chapitre_names')->chap_name : "";
        $photo = array();
        $directPath =  realpath(JELIX_APP_WWW_PATH . '../../'); // utile sur le serveur de test
		
        if (strpos($chapitre->chap_img, ',') !== false) {
            $tphotoChap = explode(',', $chapitre->chap_img);
            foreach ($tphotoChap as $item) {
                if ($item && is_file(JELIX_APP_WWW_PATH . $item)) {
                    $photo[] = $item;
                } elseif ($item && is_file(JELIX_APP_WWW_PATH . PATH_ESSAI_IMG . $item)) {
                    $photo[] = PATH_ESSAI_IMG . $item;
                } elseif (file_exists($directPath . PATH_ESSAI_IMG . $item)){
                    $photo[] = PATH_ESSAI_IMG . $item;
                } elseif (file_exists($directPath . $item)){
                    $photo[] = $item;
                }
            }
        } else if ($chapitre->chap_img && is_file(JELIX_APP_WWW_PATH . PATH_ESSAI_IMG . $chapitre->chap_img)) {
            $photo[] = PATH_ESSAI_IMG . $chapitre->chap_img;
        } else if ($chapitre->chap_img && is_file(JELIX_APP_WWW_PATH . $chapitre->chap_img)) {
            $photo[] = $chapitre->chap_img;
        } elseif ($chapitre->chap_img  && file_exists($directPath . PATH_ESSAI_IMG . $chapitre->chap_img)){
            $photo[] = PATH_ESSAI_IMG . $chapitre->chap_img;
        } elseif ($chapitre->chap_img && file_exists($directPath . $chapitre->chap_img)){
            $photo[] = $chapitre->chap_img;
        }
        // si c'est au formtat txt
        if (isset($chapitre->chap_content)) {
                $content = $chapitre->chap_content;
                $filename = JELIX_APP_WWW_PATH . PATH_ESSAI_SOUSRUBRIQUE . 'guide' . $chapitre->chap_ess_id . '/' . $content;
                if (strpos($content, ".txt") !== false) {
                    //récupération du contenu du fichier et le mettre dans la variable ess_zChapeau x :gamme-porsche-1019663438.txt
                    jClasses::inc('commun~toolsFile');
                    $chapitre->chap_content = toolsFile::get($filename);
                    $chapitre->chap_content = preg_replace('/\\n/', '<br />',$chapitre->chap_content);
                }
        }

        $essai           = common::chargeParId($idEssai, 'ao_essais');
        $marque          = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
        $modele          = common::chargeParId($essai->ess_iModelId, 'ao_modele');

        // next et previous chapter
        $navigation = new stdClass();

        if ($idEssai && $idChapname) {
            $chapterIds    = chapitreSrv::getChapterIds($idEssai);
            $currentKey    = array_keys($chapterIds->chapId, $idChapname);
            $tabChapterIds = $chapterIds->chapId;
            $tabModelesIds = $chapterIds->modeleId;
            $withModele    = false;
            foreach ($tabModelesIds as $mod) {
                if ($mod)
                    $withModele = true;
            }

            $navigation->suiv       = (isset($tabChapterIds[$currentKey[0] + 1 ])) ? $tabChapterIds[$currentKey[0] + 1 ] : 0;
            $navigation->prec       = (isset($tabChapterIds[$currentKey[0] - 1 ])) ? $tabChapterIds[$currentKey[0] - 1 ] : 0;
            if ($withModele) {
                $navigation->suivMod    = (isset($tabModelesIds[$currentKey[0] + 1]) && $tabModelesIds[$currentKey[0] + 1]) ? common::chargeParId($tabModelesIds[$currentKey[0] + 1] , 'ao_modele')->modele_libelle : 0;
                $navigation->precMod    = (isset($tabModelesIds[$currentKey[0] - 1]) && $tabModelesIds[$currentKey[0] - 1]) ? common::chargeParId($tabModelesIds[$currentKey[0] - 1] , 'ao_modele')->modele_libelle :"";
            } else {
                $suivMod    = (isset($tabChapterIds[$currentKey[0] + 1]) && $tabChapterIds[$currentKey[0] + 1]) ? common::chargeParId($tabChapterIds[$currentKey[0] + 1] , 'ao_essais_chapitre')->chap_name_id : 0;
                $precMod    = (isset($tabChapterIds[$currentKey[0] - 1]) && $tabChapterIds[$currentKey[0] - 1]) ?common::chargeParId($tabChapterIds[$currentKey[0] - 1] , 'ao_essais_chapitre')->chap_name_id : 0;
                $navigation->suivMod    = (isset($suivMod) && $suivMod) ? common::chargeParId($suivMod , 'ao_chapitre_names')->chap_name : 0;
                $navigation->precMod    = (isset(common::chargeParId($precMod , 'ao_chapitre_names')->chap_name )) ? common::chargeParId($precMod , 'ao_chapitre_names')->chap_name : 0;
            }

        } else {
            $navigation->suiv    = $navigation->prec    = 0;
            $navigation->precMod = $navigation->suivMod = '';
        }
        $name = '';
        if (isset($marque->marque_libelle))
            $name .= $marque->marque_libelle;

        if (isset($modele->modele_libelle))
            $name .= $modele->modele_libelle;

        if (isset($essai->ess_iMarqueId))
            $name .= $essai->ess_iMarqueId;

        if (isset($essai->ess_iModelId))
            $name .= $essai->ess_iModelId;
        
        if ($chapitre->chap_modele) {
            $modele->modele_libelle = common::chargeParId($chapitre->chap_modele, 'ao_modele')->modele_libelle;
        }

        if ($chapitre->chap_modele && $chapitre->fiabilite_id) {

            $fiabiliteGamme = rappelSrv::getFiabilite($chapitre->fiabilite_id);
            $rep->body->assign("fiabiliteGamme", $fiabiliteGamme);
        }
        if ($chapitre->chap_modele) {
            $versionGamme  = chapitreSrv::getVersionByChapModele($essai->ess_id, $chapitre->chap_modele);
            $rep->body->assign("versionGamme", $versionGamme);
        }
        // checker si l'essai en cours a une fiabilité
        $fiabilite = ($idEssai) ? rappelSrv::chargeParEssaiId($idEssai, ESSAI_FIABILITE) : array(common::init('ao_essais_rappel'));

        //checker si l'essai en cours a  de meilleures versions
        $version          = chapitreSrv::loadChapter($idEssai,0,2);


        $rep->bodyTpl = 'essais~chapitre';
         //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
        
        $paramRight = array('ad'=>1,'no_need_cc2'=>1);
        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight);

		$iChapitreId	= $chapitre->chap_ess_id ;
		$zChapitreName	= common::chargeParId($chapitre->chap_name_id-1, 'ao_chapitre_names')->chap_name ;
        //---
        $rep->body->assign("test", $test);
        $rep->body->assign("photo", $photo);
        $rep->body->assign("chapitre", $chapitre);
        $rep->body->assign('PATH_ESSAI_IMG' , PATH_ESSAI_IMG);
        $rep->body->assign('zChapitreName' , $zChapitreName);
        $rep->body->assign("essai", $essai);
        $rep->body->assign("marque", $marque);
        $rep->body->assign("modele", $modele);
        $rep->body->assign("navigation", $navigation);
        $rep->body->assign("fiabilite", $fiabilite);
        $rep->body->assign("version", $version);
        return $rep;
    }
     /**
    * Page essai - front
    */
    function caracteristique() {

        jClasses::inc('essais~techniqueSrv');
        jClasses::inc('essais~rappelSrv');
        jClasses::inc('essais~essaisSrv');
        jClasses::inc('essais~chapitreSrv');
        jClasses::inc('commun~common');
		jClasses::inc('publicite~pubSrv');
		jClasses::inc('commun~parametre');


        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_ESSAI;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_CARACTERISTIQUE) ;

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');

        $idEssai           = $this->intParam('id', 0);
        $idChapname        = $this->intParam('chap', 0);

        $tableau           = techniqueSrv::getAllByEssaiId($idEssai) ;
        $essai             = common::chargeParId($idEssai, 'ao_essais');        
        $marque            = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
        $modele            = common::chargeParId($essai->ess_iModelId, 'ao_modele');
        $equipement        = ($idEssai) ? rappelSrv::chargeParEssaiId($idEssai, ESSAI_EQUIPEMENTS) : array(common::init('ao_essais_rappel'));

        $equipementAutre = array();

        if (sizeof($equipement)) {
            $rapTxt = $equipement;
            // récupération de l'id de l'equipement, comme les données de la v1 sont stockées ds un txt, on va faire le clcul là dessus
            $idEq = (int)essaisSrv::getIdEquip($rapTxt[0]->original);
            // récupération des équipment % à la V1 des tables ao_equipValeur, ao_equipVersion et ao_equipTitre
            if ($idEq) {
               $equipementAutre = essaisSrv::getEquipementAutre($idEq);
               // former le tableau pour faciliter la boucle
               $equipementAutre = essaisSrv::equipementAutreForm($equipementAutre);
               $rep->body->assign("equipementAutre", $equipementAutre);
            }
            $filenameFiabilite = JELIX_APP_WWW_PATH . PATH_ESSAI_FIABILITE . 'guide'. $idEssai . '/'. $rapTxt[0]->rappel_texte;
            if (file_exists($filenameFiabilite) && strpos($rapTxt[0]->rappel_texte, ".txt") !== false) {
                jClasses::inc('commun~toolsFile');
                $rapTxt[0]->rappel_texte = toolsFile::get($filenameFiabilite);
            }
			
            $equipement = $rapTxt;
        }
        //checker si l'essai en cours a  de fiabilité
        $fiabilite        = ($idEssai) ? rappelSrv::chargeParEssaiId($idEssai, ESSAI_FIABILITE) : array(common::init('ao_essais_rappel'));

        //checker si l'essai en cours a  de meilleures versions
        $version          = chapitreSrv::loadChapter($idEssai,0,2);
        
        //checker le dernier chapitre 
        $maxIdchapName       = chapitreSrv::getChapterMax($idEssai);
        $chapitre            = ($idChapname) ? common::chargeParId($idChapname, 'ao_essais_chapitre') : common::chargeParId($maxIdchapName[0], 'ao_essais_chapitre') ;
        $chapPrec            = (isset($chapitre->chap_name_id)) ? common::chargeParId($chapitre->chap_name_id, 'ao_chapitre_names') : "";


         $versionInfos = essaisSrv::getEssaiVersions($idEssai);
        if(count($versionInfos->listeValeur) > 0){
            $toParams['versionInfos']  = $versionInfos ; 
            $toParams['idCarb'] = $versionInfos->carburation;
        }

        /** 
         * redondance au niveau de $versionInfos->listeTitre. regrouper les mm titres et récupérer les ids des doublons afin de modifier TValeur_titre_id ds 
         * $versionInfos->listeValeur
         */
        $idAModifier = essaisSrv::listeDoublonTitre($versionInfos->listeTitre);

        // modifier l'id reliant au titre dans $versionInfos->listeValeur
        if (sizeof($idAModifier)) {
            $versionInfos->listeValeur = essaisSrv::modifyValueTitle($versionInfos->listeValeur, $idAModifier);
            // dédoublonne les titres
            $versionInfos->listeTitre = essaisSrv::dedoublonneValueTitle($versionInfos->listeTitre, $idAModifier);
        }
        $rep->body->assign('equipement',$equipement);
        $rep->body->assign("essai", $essai);
        $rep->body->assign("marque", $marque);
        $rep->body->assign("modele", $modele);
        $rep->body->assign("fiabilite", $fiabilite);
        $rep->body->assign("version", $version);
        $rep->body->assign("chapitre", $chapitre);
        $rep->body->assign("chapPrec", $chapPrec);
        $rep->body->assign("versionInfos", $versionInfos);
        $rep->body->assign("idCarb", $versionInfos->carburation);

		 //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
        
        $paramRight = array('ad'=>1,'no_need_cc2'=>1);
        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight);
        //---
        $rep->bodyTpl = 'essais~caracteristique';

        return $rep;
    }
     /**
    * Page essai - front-fiabilité
    */
    function fiabilite() {

        jClasses::inc('commun~common');
        jClasses::inc('essais~rappelSrv');
        jClasses::inc('essais~superbofSrv');
        jClasses::inc('essais~concurrenceSrv') ;
        jClasses::inc('essais~chapitreSrv') ;
        jClasses::inc('essais~techniqueSrv') ;
		jClasses::inc('publicite~pubSrv');
		jClasses::inc('commun~parametre');


        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_ESSAI;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_FIABILITE) ;

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');


        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ESSAIS_FIABILITE);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

        $idEssai           = $this->intParam('id', 0);
        $idChapname        = $this->intParam('chap', 0);

        $fiabilite        = ($idEssai) ? rappelSrv::chargeParEssaiId($idEssai, ESSAI_FIABILITE) : array(common::init('ao_essais_rappel'));
        $superbof         = ($idEssai) ? superbofSrv::chargeParEssaiId($idEssai) : array(common::init('ao_essais_rappel'));
        $essai            = common::chargeParId($idEssai, 'ao_essais');        
        $concurrence      = concurrenceSrv::loadConcurrence($idEssai);
        $marque           = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
        $modele           = common::chargeParId($essai->ess_iModelId, 'ao_modele');

        $maxIdchapName       = chapitreSrv::getChapterMax($idEssai);
        $chapitre            = ($idChapname) ? common::chargeParId($idChapname, 'ao_essais_chapitre') : common::chargeParId($maxIdchapName[0], 'ao_essais_chapitre') ;
        $chapPrec            = (isset($chapitre->chap_name_id)) ? common::chargeParId($chapitre->chap_name_id, 'ao_chapitre_names') : "";

        //checker si l'essai en cours a  de meilleures versions
        $version          = chapitreSrv::loadChapter($idEssai,0,2);

        // checker si la cractéristique existe pour l'essais en question 
        $caracteristiqueExiste = techniqueSrv::exists($idEssai);


        // Récupération du superbof si c'est stocké dans un fichier texte
        if ($idEssai && is_array($superbof) && sizeof($superbof)) {
               $filenameplus = JELIX_APP_WWW_PATH . PATH_ESSAI_SUPERBOF . 'guide'. $idEssai . '/'.$superbof[0]->apprec_plus;
               $filenamemoins = JELIX_APP_WWW_PATH . PATH_ESSAI_SUPERBOF . 'guide'. $idEssai . '/'.$superbof[0]->apprec_moins;
               if (file_exists($filenameplus) && strpos($superbof[0]->apprec_plus, ".txt") !== false) {
                    jClasses::inc('commun~toolsFile');
                    $superbof[0]->apprec_plus   = str_replace('-', '<br />-', toolsFile::get($filenameplus));
               }

               if (file_exists($filenamemoins) && strpos($superbof[0]->apprec_moins, ".txt") !== false) {
                    jClasses::inc('commun~toolsFile');
                    $superbof[0]->apprec_moins   = str_replace('-', '<br />-', toolsFile::get($filenamemoins));
               }
        }

        $rep->bodyTpl = 'essais~fiabilite';
        $rep->body->assign('fiabilite',$fiabilite);
        $rep->body->assign('superbof',$superbof);
        $rep->body->assign("essai", $essai);
        $rep->body->assign("concurrence", $concurrence);
        $rep->body->assign("marque", $marque);
        $rep->body->assign("modele", $modele);
        $rep->body->assign('caracteristiqueExiste',$caracteristiqueExiste);
        $rep->body->assign('chapPrec',$chapPrec);
        $rep->body->assign('chapitre',$chapitre);
        $rep->body->assign('version',$version);

         //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
        
        $paramRight = array('ad'=>1,'no_need_cc2'=>1);
        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight);
        //---

        return $rep;
    }


         /**
    * Page essai - front-meilleure version
    */
    function version() {

        jClasses::inc('commun~common');
        jClasses::inc('essais~chapitreSrv');
        jClasses::inc('essais~techniqueSrv');
        jClasses::inc('publicite~pubSrv');
        jClasses::inc('essais~rappelSrv');
		jClasses::inc('commun~parametre');
		jClasses::inc('commun~parametre');


        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_ESSAI;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_VERSION) ;

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');


        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ESSAIS_FIABILITE);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

        $idEssai             = $this->intParam('id', 0);
        $idChapname          = $this->intParam('chap', 0);

        //checker le dernier chapitre 
        $maxIdchapName       = chapitreSrv::getChapterMax($idEssai);
        $chapitre            = ($idChapname) ? common::chargeParId($idChapname, 'ao_essais_chapitre') : common::chargeParId($maxIdchapName[0], 'ao_essais_chapitre') ;
        $chapPrec            = (isset($chapitre->chap_name_id)) ? common::chargeParId($chapitre->chap_name_id, 'ao_chapitre_names') : "";

        $essai            = common::chargeParId($idEssai, 'ao_essais');        
        $version          = chapitreSrv::loadChapter($idEssai,0,2);
        $marque           = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
        $modele           = common::chargeParId($essai->ess_iModelId, 'ao_modele');
        $fiabilite        = ($idEssai) ? rappelSrv::chargeParEssaiId($idEssai, ESSAI_FIABILITE) : array(common::init('ao_essais_rappel'));

        // checker si la cractéristique existe pour l'essais en question 
        $caracteristiqueExiste = techniqueSrv::exists($idEssai);

        if (sizeof($version)) {
            $temp = array();
            foreach ($version as $k=>$item) {
                if (sizeof($item->chap_img)) {
                    foreach ($item->chap_img as $j=>$itemImg) {
                        $filename   = JELIX_APP_WWW_PATH . $itemImg;
                        $directPath =  realpath(JELIX_APP_WWW_PATH . '../../'); // utile sur le serveur de test

                        if (file_exists($directPath . $itemImg)) {
                            $item->chap_img[$j] = $itemImg;
                        } else if (file_exists($filename . $itemImg)) {
                            $item->chap_img[$j] = $GLOBALS['gJConfig']->urlengine['basePath'] . $itemImg;
                            $item->chap_img[$j] = str_replace('//', '/', $item->chap_img[$j]);
                        } else {
                            unset($item->chap_img[$j]);
                        }
                    }
                }
            }
        }

        $rep->bodyTpl = 'essais~version';
        $rep->body->assign('version',$version);
        $rep->body->assign('fiabilite',$fiabilite);
        $rep->body->assign('marque',$marque);
        $rep->body->assign('modele',$modele);
        $rep->body->assign('essai',$essai);
        $rep->body->assign('chapPrec',$chapPrec);
        $rep->body->assign('chapitre',$chapitre);
        $rep->body->assign('caracteristiqueExiste',$caracteristiqueExiste);

        
         //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
        
        $paramRight = array('ad'=>1,'no_need_cc2'=>1);
        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight);
        //---

        return $rep;
    }

	 function listEssaiConcurente() {
		
		//proriéte de la reponse
		$oResponse				= $this->getResponse('htmlFo');
		$oResponse->menusActifs = frontHtmlResponse::MENU_ESSAI;
		$oResponse->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ESSAI) ;
		$oResponse->bodyTpl		= 'essais~FoListEssaiConcurente';

		//Inclusion des css et javascript
        $oResponse->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css');
        $oResponse->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $oResponse->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $oResponse->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js');
        $oResponse->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js');
        $oResponse->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js');
        $oResponse->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');

        //Inclusion des classes services
        jClasses::inc("essais~essaisSrv");
        jClasses::inc('commun~common');
        jClasses::inc('essais~chapitreSrv') ;
        jClasses::inc('essais~rappelSrv') ;
        jClasses::inc('essais~concurrenceSrv') ;
        jClasses::inc('essais~techniqueSrv') ;
        

        //xml pour le header : title, desc, keywords
        $headerContent			= common::readXml(PATH_XML_ESSAIS);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $oResponse->addHeadContent($keywords);
        $oResponse->addHeadContent($description);

		//Récupération des paramètres
        $iMarqueId				= $this->intParam('iMarqueId', 0);
        $iModeleId				= $this->intParam('iModeleId', 0);
     

		//Récuperation du tableau des esssais
		$tiListesEsssaiId		= essaisSrv::getListEssaiIdByMarqueModele($iMarqueId,$iModeleId) ;
		//Récuperation du marque et modele
		$iEssaiId				= $tiListesEsssaiId[0] ;
		$oEssai					= common::chargeParId($iEssaiId, 'ao_essais') ;
		$oMarque				= common::chargeParId($oEssai->ess_iMarqueId, 'ao_marque') ;
		$oModele				= common::chargeParId($oEssai->ess_iModelId,  'ao_modele') ;

		//Recuperation des versions
		$toListEssai			= array() ;
		foreach ($tiListesEsssaiId as $iEssaiId)
		{
			$oEssai				= common::chargeParId($iEssaiId, 'ao_essais') ;
			if($oEssai->ess_zVersion!="")
			{
				$zFilename		= JELIX_APP_WWW_PATH . PATH_ESSAI_CHAPEAU . $oEssai->ess_zChapeau ;
				if (file_exists($zFilename) && strpos($oEssai->ess_zChapeau, ".txt") !== false) {
					//récupération du contenu du fichier et le mettre dans la variable ess_zChapeau x :gamme-porsche-1019663438.txt
					jClasses::inc('commun~toolsFile');
					$oEssai->ess_zChapeau = toolsFile::get($zFilename);
				}
				array_push($toListEssai ,$oEssai) ;
			}
			
		}
        //Assignation des variables du template
        $oResponse->body->assign('oMarque' , $oMarque);
        $oResponse->body->assign('oModele' , $oModele);
        $oResponse->body->assign('toListEssai' , $toListEssai);

       //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
        $oResponse->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
        
        $paramRight = array('ad'=>2,'no_need_cc2'=>1);
        $oResponse->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight);
        //---

		 return $oResponse;
    }

}